package com.xique.park.service.service;


import cn.hutool.http.HttpResponse;
import com.xique.common.core.web.domain.AjaxResult;
import com.xique.park.bean.request.client.OpenGateRequest;
import com.xique.park.bean.request.comm.ParkOnListRequest;
import com.xique.park.bean.request.web.onDuty.OnDutySettlementRequest;
import com.xique.park.bean.request.web.parkingOrder.ParkingOrderRequest;
import com.xique.park.bean.request.web.payorder.PayOrderRequest;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 导出服务接口
 *
 * @author xqy
 */
public interface ExportService {

    /**
     * 导出收入记录
     *
     * @param response  HttpServletResponse
     * @param parkId    项目ID
     * @param type      导出时间类型
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @throws IOException IO异常
     */
    void exportIncomeStatistics(HttpServletResponse response, long parkId, Integer type, String startTime, String endTime) throws IOException;

    /**
     * 导出支付记录
     *
     * @param response        HttpServletResponse
     * @param payOrderRequest 支付记录请求对象
     * @throws IOException IO异常
     */
    void exportPayRecord(HttpServletResponse response, PayOrderRequest payOrderRequest) throws IOException;


    /**
     * 导出现金收费放行记录
     *
     * @param response HttpServletResponse
     * @param request  值班结算请求对象
     * @throws IOException IO异常
     */
    void exportNoChargeList(OnDutySettlementRequest request, HttpServletResponse response) throws IOException;

    /**
     * 导出免费放行
     *
     * @param request  值班结算请求对象
     * @param response HttpServletResponse
     * @throws IOException IO异常
     */
    void exportFeeList(OnDutySettlementRequest request, HttpServletResponse response) throws IOException;

    /**
     * 手动开闸导出记录
     *
     * @param request  值班结算请求对象
     * @param response HttpServletResponse
     * @throws IOException IO异常
     */
    void exportOpenGate(OpenGateRequest request, HttpServletResponse response) throws IOException;

    /**
     * 导出在场车辆记录
     * @param request
     * @return
     */
    void exportParkOnList(HttpServletResponse response,ParkOnListRequest request) throws IOException;

    /**
     * 停车记录导出
     * @param parkingOrderRequest
     * @param response
     */
    void exportParkOrderList(ParkingOrderRequest parkingOrderRequest, HttpServletResponse response) throws IOException;
}
